import request from "@/utils/request";
import {PageQueryParam} from "@/types/base";
export class BaseService  {
    __module;
    constructor(__module: String) {
        this.__module = __module;
    }

    /**
     * 列表
     *
     * @param queryParams
     */
    apiList(queryParams?: any) {
        return request({
            url: `/${(this.__module)}/listAll`,
            method: 'get',
            params: queryParams,
        });
    }

    /**
     * 列表全部
     *
     * @param queryParams
     */
    apiListAllGroupName() {
        return request({
            url: `/${(this.__module)}/listAllGroupName`,
            method: 'get',
        });
    }



    /**
     * 分页列表
     *
     * @param queryParams
     */
    apiListByPage(queryParams: any){
        return request({
            url: `/${(this.__module)}/listByPage`,
            method: 'get',
            params: queryParams,
        });
    }

    /**
     * 逻辑删除，多个以英文逗号(,)分割
     *
     * @param ids
     */
    apiDeleteList(ids: string) {
        return request({
            url: `/${(this.__module)}/delete/${ids}`,
            method: 'delete',
        });
    }

    /**
     * 逻辑删除，多个以英文逗号(,)分割
     *
     * @param ids
     */
    apiDelete(id: string, type: string | number) {
        return request({
            url: `/${(this.__module)}/delete/${type}/${id}`,
            method: 'delete',
        });
    }


    /**
     * 获取列表详情（根据Id）
     *
     * @param queryParams
     */
    apiDetail(id: number | string) {
        return request({
            url: `/${(this.__module)}/details/${id}`,
            method: 'get',
        });
    }

    /**
     * 新增网关列表
     *
     * @param data
     */
    apiAdd(data:any) {
        return request({
            url: `/${(this.__module)}/add`,
            method: 'post',
            data: data,
        });
    }

    /**
     * 更新信息
     */
    apiUpdate(id: any, data: any) {
        return request({
            url: `/${(this.__module)}/updateById/${id}`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 更新状态
     */
    apiUpdateStatus(data: any) {
        return request({
            url: `/${(this.__module)}/updateStatus`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 更新位置
     */
    apiUpdateFolderById(id: Number, data: any) {
        return request({
            url: `/${(this.__module)}/updateFolderById/${id}`,
            method: 'put',
            data: data,
        });
    }
    /**
     * 重命名
     */
    apiUpdateName(id: any, data:any) {
        return request({
            url: `/${(this.__module)}/updateName/${id}`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 更新实体列表信息
     */
    apiListByFolderId(params: any) {
        return request({
            url: `/${(this.__module)}/listByFolderId`,
            method: 'get',
            params: params,
        });
    }


    /**
     * 调试
     */
    apiLDebug(id: any, params?: any) {
        return request({
            url: `/${(this.__module)}/debug/${id}`,
            method: 'get',
            params: params,
        });
    }

    /**
     * 更新关联设备库
     */
    apiUpdateDeviceLibraryMapping(data: any) {
        return request({
            url: `/${(this.__module)}/updateDeviceLibraryMapping`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 批量更新淡入淡出时间
     */
    apiUpdateDeviceFadeTime(data: any) {
        return request({
            url: `/${(this.__module)}/updateDeviceFadeTime`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 更新关联设备库
     */
    apiBatchEnableStatistics(data: any) {
        return request({
            url: `/${(this.__module)}/batchEnableStatistics`,
            method: 'put',
            data: data,
        });
    }

    /**
     * 更新设备状态
     * @param id
     * @param data
     */
    apiUpdateStatusById(id: any, data: any) {
        return request({
            url: `/${(this.__module)}/updateStatusById/${id}` + '?' + data,
            method: 'put',
        });
    }


}


